/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cl.orientesalud.util;

import com.toedter.calendar.JDateChooser;
import java.awt.Component;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.DefaultListModel;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import org.apache.log4j.Logger;

/**
 *
 * @author nicolas
 */
public class UtilForm {
    
   Logger logger=OrienteLog.obtenerLogger(UtilForm.class);

    public void limpiarFormulario(JDialog form) {
        Component componentes[] = form.getContentPane().getComponents(); 
    /* Conseguimos todos los componentes del contenedor utilizado,
     * en este caso, estamos sacando los componentes del JFrame mismo,
     * ya que los componentes fueron agregados directamente a el.
     */
     
     
        for(int i=0; i<componentes.length;i++)
        {
            String clase = componentes[i].getClass().getName();

            if(clase.equals("javax.swing.JTextField"))
            {
                JTextField tmp = (JTextField)componentes[i];
                tmp.setText("");
            }

            if(clase.equals("javax.swing.JPasswordField"))
            {
                JPasswordField tmp = (JPasswordField)componentes[i];
                tmp.setText("");
            }

            if(clase.equals("javax.swing.JComboBox"))
            {
                JComboBox tmp = (JComboBox)componentes[i];
                tmp.setSelectedIndex(0);
            }

            if(clase.equals("javax.swing.JCheckBox"))
            {
                JCheckBox tmp = (JCheckBox)componentes[i];
                tmp.setSelected(false);
            }  
            
        }
    }
    public void limpiarFormulario(JPanel form) {
        Component componentes[] = form.getComponents(); 
    /* Conseguimos todos los componentes del contenedor utilizado,
     * en este caso, estamos sacando los componentes del JFrame mismo,
     * ya que los componentes fueron agregados directamente a el.
     */
     
     
        for(int i=0; i<componentes.length;i++)
        {
            String clase = componentes[i].getClass().getName();
            //logger.debug(componentes[i]);

            if(clase.equals("javax.swing.JTextField"))
            {
                JTextField tmp = (JTextField)componentes[i];
                tmp.setText("");
            }

            if(clase.equals("javax.swing.JPasswordField"))
            {
                JPasswordField tmp = (JPasswordField)componentes[i];
                tmp.setText("");
            }

            if(clase.equals("javax.swing.JComboBox"))
            {
                JComboBox tmp = (JComboBox)componentes[i];
                tmp.setSelectedIndex(0);
            }

            if(clase.equals("javax.swing.JCheckBox"))
            {
                JCheckBox tmp = (JCheckBox)componentes[i];
                tmp.setSelected(false);
            } 
            
            if(clase.equals("com.toedter.calendar.JDateChooser")){
                JDateChooser tmp=(JDateChooser) componentes[i];
                tmp.setDate(null);
            }
            
        }
    }
    
     public boolean validarRut(String rutForm)
    {
        int rut;
        char dv;
        String[] temp=rutForm.split("-");
        rut=Integer.valueOf(temp[0]);
        dv=temp[1].charAt(0);
        int m = 0, s = 1;
        for (; rut != 0; rut /= 10)
        {
            s = (s + rut % 10 * (9 - m++ % 6)) % 11;
        }
        return dv == (char) (s != 0 ? s + 47 : 75);
    }

     public boolean validarFormaRut(String input){
         Pattern p = Pattern.compile("^([0-9]*-)([kK]{1}$|[0-9]{1}$)");
         Matcher m = p.matcher(input);
         return m.matches();
     }
     
     public boolean esVacio(JTextField texto){
         return texto.getText().equals("");
     }
    
     public void llenarCombo(JComboBox combo,List lista){
         
         Iterator iterador=lista.iterator();
         while(iterador.hasNext()){
            combo.addItem(iterador.next());
         }
         
     }
     public void llenarLista(JList list,List lista){
         
         Iterator iterador=lista.iterator();
         Object[] objetos=new Object[lista.size()];
         int i=0;
         while(iterador.hasNext()){
            objetos[i]=iterador.next();
            i++;
         }
         list.setListData(objetos);
         
     }
     
     public List obtenerLista(DefaultListModel modeloLista){
         List lista = new ArrayList();
         for(int i=0;i<modeloLista.size();i++){
             lista.add(modeloLista.getElementAt(i));
         }
             
         return lista;
        
     }

    

    public void limpiarTabla(DefaultTableModel model) {
        while (model.getRowCount()>0){
            model.removeRow(0);
        }
    }
}
